<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <script>

        // 把一个排序好了的数组  [1,3,5,7,8]   -> 2插入这个数组

        //   思路：找到正确的位置进行插入
        //      比前一个数大，比后一个数小

        // var arr = [1,2,3,5,7,8] ;

        // for(var i = 0 ; i < arr.length ; i++) {
        //     // 比前一个数大，比后一个数小
        //     if(2 >= arr[i] && 2 < arr[i+1]) {
        //         // 插入
        //         arr.splice(i+1 , 0 , 2) ;
        //         break ;   // 插入值之后，就不需要继续循环
        //     }
        // }

        // console.log(arr);

        // 死循环
        // i=0
        // i=1  1 2 2 3 5 7 8
        // i=2  1 2 2 2 3 5 7 8




        // function insert(arr, n) {
        //     // 可能需要放在最前面
        //     // 也可能需要放在最后面
        //     if (n < arr[0]) {
        //         arr.unshift(n);
        //     }
        //     else if (n > arr[arr.length - 1]) {
        //         arr.push(n);
        //     }
        //     else {
        //         for (var i = 0; i < arr.length; i++) {
        //             // 比前一个数大，比后一个数小
        //             if (n >= arr[i] && n < arr[i + 1]) {
        //                 // 插入
        //                 arr.splice(i + 1, 0, n);
        //                 break;   // 插入值之后，就不需要继续循环
        //             }
        //         }
        //     }

        //     console.log(arr);
        // }



        // function insert(arr, n) {
        //     // 可能需要放在最前面
        //     // 也可能需要放在最后面
        //     if (n < arr[0]) {
        //         arr.unshift(n);
        //         return arr
        //     }

        //     if (n > arr[arr.length - 1]) {
        //         arr.push(n);
        //         return arr
        //     }
        
        //     for (var i = 0; i < arr.length; i++) {
        //         // 比前一个数大，比后一个数小
        //         if (n >= arr[i] && n < arr[i + 1]) {
        //             // 插入
        //             arr.splice(i + 1, 0, n);
        //             return arr;   // 插入值之后，就不需要继续循环
        //         }
        //     }
      
        // }



        function insert(arr , n) {
            // 找到一个合适的位置  
            
            // 假设就在最前面
            var j = 0 ;

            // 找位置
            // 可能在最后面
            if(n > arr[arr.length-1]) {
                j = arr.length ;
            }
            else {
                for (var i = 0; i < arr.length; i++) {
                    if(n >= arr[i] && n < arr[i + 1]) {
                        j = i + 1 ;
                        break ;  
                    }
                }
            }

            // 插入
            arr.splice(j , 0 , n) ;

            console.log(arr);
        }



        insert([1,3,4,5,6] , 11) ;



    </script>

</body>

</html>